Use GitHub tarball downloads for CPM dependencies#1005
Open
bdice wants to merge 1 commit intorapidsai:mainfrom
Open
Use GitHub tarball downloads for CPM dependencies#1005bdice wants to merge 1 commit intorapidsai:mainfrom
bdice wants to merge 1 commit intorapidsai:mainfrom
Conversation
db42265 to
a40f5d7
Compare
robertmaynard
requested changes
Apr 15, 2026
Contributor
Author
Good catch. I'll correct this. |
a40f5d7 to
df1572b
Compare
This was referenced Apr 27, 2026
Contributor
Author
|
Test PR: rapidsai/cudf#22313 |
Contributor
Author
I broke out the expansion of tests into #1011. This PR now depends on #1011, and its scope is limited to updating |
df1572b to
b41923d
Compare
rapids-bot Bot
pushed a commit
that referenced
this pull request
May 5, 2026
Add a new patch application path that uses `patch -p1`, so CPM packages fetched as tarballs can have patches applied to them. Tarball-extracted directories have no `.git` repository and so cannot use `git apply` or `git am`. The existing git-mode path is retained unchanged for packages fetched as git clones. The fetch mode is detected from `versions.json` (`git_url`/`git_tag` vs `url`/`url_hash`) and the patch script dispatches accordingly. Also includes a few adjacent fixes uncovered while adding the above: - Fix `pinning_write_file.cmake` to respect mode switching when an override provides git fields for a package whose default is URL-mode. Previously the fallback to default JSON could incorrectly detect URL-mode even when the override explicitly switched to git-mode. - Update `verify_generated_pins` to handle URL-mode packages in pin verification, checking `url`/`url_hash` fields instead of `git_tag`/`git_shallow`. - Update `cpm_package_override-multiple` tests to provide `git_url` alongside `git_tag` in overrides so that partial git overrides remain valid regardless of whether the default entry is git- or url-mode. ### Test coverage Splits the existing patch-command tests into explicit `-git` and `-tarball` variants for each scenario (regular, embedded, required, required-fails) and adds `-diff-git`/`-diff-tarball` pairs so both `.patch` and `.diff` files are exercised in both modes. Each test specifies its fetch mode explicitly in `override.json` (`git_url`/`git_tag` for `-git` tests, `url`/`url_hash` for `-tarball` tests) rather than relying on the default, so the tests remain correct regardless of how `versions.json` evolves. The override is applied before `rapids_cpm_package_details_internal` so the explicitly declared mode is used for the test's pre-populate step. Coverage matrix: | | git mode | tarball mode | |--------------|----------|--------------| | .diff | new | new | | .patch | existing | new | | inline patch | existing | new | | required | existing | new | | required-fails | existing | new | This PR is a prerequisite for #1005 (converting `versions.json` entries to tarballs), since several of the packages being converted have patches applied via overrides in downstream RAPIDS projects. Authors: - Bradley Dice (https://github.com/bdice) Approvers: - Robert Maynard (https://github.com/robertmaynard) URL: #1011
Convert 7 packages (benchmark, bs_thread_pool, cuco, rapids_logger, GTest, nvbench, nvtx3) from git clone to GitHub tarball archive downloads in versions.json, reducing download sizes significantly.
b41923d to
c0e0bd9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Convert 7 CPM packages from
git cloneto GitHub tarball archive downloads (url+url_hash) inversions.json, reducing download sizes significantly.Depends on #1011 (patch-application support for tarball-mode packages).
Converted packages: benchmark, bs_thread_pool, cuco, rapids_logger, GTest, nvbench, nvtx3
Intentionally excluded:
rmm— uses dynamic version placeholders (${rapids-cmake-version})nvcomp— hasproprietary_binaryentries requiring special handlingSize Comparison
Total tarball download: 6.5 MB
Total git download (approx .git dir): 36.4 MB
Total savings: 82%
Notes:
.gitdirectory after a full clone)git_shallow: false(full history clones), so the savings are realCloses #968
Checklist
cmake-format.jsonis up to date with these changes.